3.1 匹配多个字符中的某一个
6 个月前
何方
5
第 2 章介绍的 . 字符可以匹配任意单个个字符。在第 2 章的一个例子里,我们使用了 .a 来匹配 na 和 sa。现在,如果在那份文件清单里增加了一个名为 cal.xls 的文件,而你仍只想找出 na 和 sa,你该怎么办?别忘了, . 也能匹配 c,所以文件名 cal.xls 也会被找出。
既然只想找出 n 和 s,使用可以匹配任意字符的 . 显然不行——我们不需要匹配任意字符,我们只想匹配 n 和 s 这两个字符。在正则表达式里,我们可以使用元字符 [ 和 ] 来定义一个字符集合。在使用 [ 和 ] 定义的字符集合里,这两个元字符之间的所有字符都是该集合的组成部分,字符集合的匹配结果是能够与该集合里的任意一个成员相匹配的文本。下面这个例子与第 2 章里的最后一个例子相似,但我们在这次的正则表达式里使用了一个字符集合:
例 1
分析
这里使用的模式包含着两个字符集合: [Rr] 负责匹配字母 R 和 r, [Ee] 负责匹配字母 E 和 e。这个模式可以匹配 RegEx 和 regex,但不匹配 REGEX。
提示
如果你打算进行一次不需要区分字母大小写的匹配,不使用这个技巧也能达到目的。这样模式最适合用在从全局看需要区分字母大小写,但在某个局部不需要区分的搜索操作。在本站提供的在线正则表达式工具中可以打开“忽略大小写(i)”选项来全局不区分大小写。